qunit: Test `before` and `after` hooks in QUnit testrunner
authorAleksey Bekh-Ivanov (WMDE) <aleksey.bekh-ivanov@wikimedia.de>
Wed, 2 Aug 2017 14:21:56 +0000 (16:21 +0200)
committerWMDE-leszek <leszek.manicki@wikimedia.de>
Thu, 1 Feb 2018 09:53:20 +0000 (09:53 +0000)
Change-Id: Ib5b5d29e860d37dbec675e5d24c31b57c5e64102

tests/qunit/data/testrunner.js

index eef6703..06c146c 100644 (file)
                } );
        } );
 
+       QUnit.module( 'testrunner-hooks-outer', function () {
+               var beforeHookWasExecuted = false,
+                       afterHookWasExecuted = false;
+               QUnit.module( 'testrunner-hooks', {
+                       before: function () {
+                               beforeHookWasExecuted = true;
+
+                               // This way we can be sure that module `testrunner-hook-after` will always
+                               // be executed after module `testrunner-hooks`
+                               QUnit.module( 'testrunner-hooks-after' );
+                               QUnit.test(
+                                       '`after` hook for module `testrunner-hooks` was executed',
+                                       function ( assert ) {
+                                               assert.ok( afterHookWasExecuted );
+                                       }
+                               );
+                       },
+                       after: function () {
+                               afterHookWasExecuted = true;
+                       }
+               } );
+
+               QUnit.test( '`before` hook was executed', function ( assert ) {
+                       assert.ok( beforeHookWasExecuted );
+               } );
+       } );
+
 }( jQuery, mediaWiki, QUnit ) );